#ifndef FUQUOS_IDT_H
#define FUQUOS_IDT_H

#include<fuquOS/type.h>

// IDT 入口结构
struct idt_entry{
	u16 offset_low; // 处理函数的低16位偏移
	u16 selector; // 代码段选择子
	u8 zero; // 固定为0
	u8 type_attr; // 类型和属性
	u16 offset_high; // 高16位偏移
} __attribute__((packed));

// IDT 指针结构
struct idt_pointer{
	u16 limit;
	u32 base;
} __attribute__((packed));

void set_idt_entry(int index,u32 base,u16 selector,u8 type);
void idt_init();

#endif // FUQUOS_IDT_H
